Preserve jvm.gc.name attribute in AppSignals GC runtime metrics - #2218
Merged
jefchien merged 4 commits intoJul 31, 2026
Conversation
The JVMGCCount and JVMGCDuration transform rules were stripping all labels (label_set: []) during aggregation, which discarded the 'name' attribute (jvm.gc.name) that identifies the GC collector type. This change preserves the 'name' label on these aggregate GC metrics so the Topology service can distinguish between different GC collector types (e.g. G1, Parallel, CMS, ZGC) when generating per-collector runtime metrics. Resolves: P476745637, D482737053
ezhang6811
force-pushed
the
fix/preserve-jvm-gc-name-dimension
branch
from
July 28, 2026 00:00
569613e to
bf4fb6c
Compare
Update the expected YAML output in tocwconfig sample configs to reflect the label_set: [name] change on JVMGCCount and JVMGCDuration.
ezhang6811
force-pushed
the
fix/preserve-jvm-gc-name-dimension
branch
from
July 28, 2026 22:48
5fb9108 to
86ab6df
Compare
jefchien
approved these changes
Jul 30, 2026
TravisStark
approved these changes
Jul 31, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Preserves the
namelabel (which carries thejvm.gc.nameOTel attribute) on the aggregateJVMGCCountandJVMGCDurationAppSignals runtime metrics, enabling downstream consumers to differentiate GC collector types.Problem
The
JVMGCCountandJVMGCDurationtransform rules inappsignals_runtime_config.yamlusedlabel_set: []in theiraggregate_labelsoperation, which stripped all labels including thenameattribute that identifies the GC collector type (e.g.PS Scavenge,G1 Young Generation).Changes
label_set: []tolabel_set: ["name"]for bothJVMGCCountandJVMGCDurationtransform rulesTestAppSignalsGCMetricsPreserveNameLabel) that validates thenamelabel is preservedTesting
namefield; this branch emits thenameattribute on every GC record in CloudWatch Logs.Example EMF record from the
/aws/application-signals/datalog group:{ "Environment": "eks:demo/default", "Service": "pet-clinic-frontend-java", "Telemetry.Source": "RuntimeMetric", "name": "PS Scavenge", "JVMGCCount": 7, "JVMGCDuration": 74, "_aws": { "CloudWatchMetrics": [{ "Namespace": "ApplicationSignals", "Dimensions": [["Environment", "Service"]], "Metrics": [ {"Name": "JVMGCCount", "Unit": "", "StorageResolution": 60}, {"Name": "JVMGCDuration", "Unit": "", "StorageResolution": 60} ] }] } }